package neu.soft.exception;

import neu.soft.vo.ResultBean;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @author 李博
 * 统一异常处理，如果不是自定义的异常枚举类型，会打印该异常信息，后续会调整，因为异常信息略多，方便调试
 * 使用方法参照operation serve里的使用方法
 */
@ControllerAdvice
public class GlobalExceptionHandler {

    //出现异常就进入该方法，对异常进行处理并返回结果
    @ExceptionHandler(value = {Exception.class})
    @ResponseBody
    public <T> ResultBean<T> exceptionHandler(Exception e){
        e.getStackTrace();
        if(e instanceof AppException){
            AppException appException = (AppException) e;
            return ResultBean.error(appException.getCode(),appException.getMsg());
        }
        return ResultBean.error(500,e.getCause().toString());
    }

}

